from info.models import News,User
from info import constants
from flask import session,g


def get_click_list():
    # 点击排行
    news_list1 = News.query.order_by(News.clicks.desc()).limit(constants.CLICK_RANK_MAX_NEWS)
    news_list2 = [news.to_click_dict() for news in news_list1]
    return news_list2

import functools
def login_wrapps(view):
    #注意2：在视图函数上添加装饰器，必须使用如下装饰器修饰内部函数
    #答：返回原有函数view的名称
    @functools.wraps(view)
    def fun2(*args,**kwargs):
        #注意3：在装饰器中生成的数据，如何在视图函数中访问呢？
        #答：使用全局变量g
        if 'user_id' in session:
            g.user=User.query.get(session.get('user_id'))
        else:
            g.user=None

        #注意1：使用装饰器装饰视图函数，必须返回response
        return view(*args,**kwargs)
    return fun2
'''
def fun1(fn):
    def fun2():
        fn()
    return fun2
'''

